Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


sbapp/assets/icons_macos.py master (e79cf129) Text, 9.42 KB

Tff7b72import T7ee787sys
Tff7b72import T7ee787pathlib
Tff7b72import T7ee787argparse
Tff7b72import T7ee787subprocess
Tff7b72import T7ee787platform

Te6edf3__version_info__ Tff7b72= Tb4b4b4(T79c0ff1Tb4b4b4, T79c0ff2Tb4b4b4, T79c0ff0Tb4b4b4)
Te6edf3__version__ Tff7b72= Ta5d6ff"Ta5d6ff.Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Tffa657mapTb4b4b4(Tffa657strTb4b4b4, Te6edf3__version_info__Tb4b4b4)Tb4b4b4)

Te6edf3__copyright__Tb4b4b4: Tffa657str Tff7b72= Ta5d6fffTa5d6ff"Ta5d6ffCopyright (C) 2018-2022 Declaration of VARTa5d6ff"

T8b949e# default iconset files extension, gets the value from original image
Te6edf3ext Tff7b72= Ta5d6ff"Ta5d6ff.pngTa5d6ff"
T8b949e# programs names
Te6edf3iconutilProgram Tff7b72= Ta5d6ff"Ta5d6fficonutilTa5d6ff"
Te6edf3magickProgram Tff7b72= Ta5d6ff"Ta5d6ffmagickTa5d6ff"
Te6edf3sipsProgram Tff7b72= Ta5d6ff"Ta5d6ffsipsTa5d6ff"


Tff7b72class T56d364IconParametersTb4b4b4(Tb4b4b4)Tb4b4b4:
Te6edf3width Tff7b72= T79c0ff0
Te6edf3scale Tff7b72= T79c0ff1

Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3widthTb4b4b4, Te6edf3scaleTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffwidth Tff7b72= Te6edf3width
Tff7b72selfTff7b72.Td2a8ffscale Tff7b72= Te6edf3scale

Tff7b72def Td2a8ffgetIconNameTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72global Te6edf3ext
Te6edf3scaleString Tff7b72= Ta5d6ff"Ta5d6ff" Tff7b72if Tff7b72selfTff7b72.Td2a8ffscale Tff7b72== T79c0ff1 Tff7b72else Ta5d6fffTa5d6ff"Ta5d6ff@Tffd700{Tff7b72selfTff7b72.Td2a8ffscaleTffd700}Ta5d6ffxTa5d6ff"
Tff7b72return Ta5d6fffTa5d6ff"Ta5d6fficon_Tffd700{Tff7b72selfTff7b72.Td2a8ffwidthTffd700}Ta5d6ffxTffd700{Tff7b72selfTff7b72.Td2a8ffwidthTffd700}Tffd700{Te6edf3scaleStringTffd700}Tffd700{Te6edf3extTffd700}Ta5d6ff"


Tff7b72def Td2a8ffcheckProgramInPathTb4b4b4(Te6edf3programNameTb4b4b4, Te6edf3errorMsgTff7b72=Tff7b72NoneTb4b4b4)Tb4b4b4:
Te6edf3checkResult Tff7b72= Te6edf3subprocessTff7b72.Td2a8ffrunTb4b4b4(
Tb4b4b4[Ta5d6ff"Ta5d6ffwhichTa5d6ff"Tb4b4b4, Te6edf3programNameTb4b4b4]Tb4b4b4,
Te6edf3capture_outputTff7b72=Tff7b72TrueTb4b4b4,
Te6edf3textTff7b72=Tff7b72True
Tb4b4b4)
Te6edf3errorMsgString Tff7b72= Ta5d6ff"Ta5d6ff" Tff7b72if Te6edf3errorMsg Tff7b72is Tff7b72None Tff7b72else Ta5d6fffTa5d6ff"Ta5d6ff. Tffd700{Te6edf3errorMsgTffd700}Ta5d6ff"
Tff7b72if Te6edf3checkResultTff7b72.Td2a8ffreturncode Tff7b72!= T79c0ff0Tb4b4b4:
Tff7b72raise Tf85149SystemExitTb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ff[ERROR] CouldnTa5d6ff'Ta5d6fft find Tffd700{Te6edf3programNameTffd700}Ta5d6ff in your PATHTffd700{Te6edf3errorMsgStringTffd700}Ta5d6ff"
Tb4b4b4)
Tff7b72elseTb4b4b4:
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffFound Tffd700{Te6edf3programNameTffd700}Ta5d6ff: Tffd700{Te6edf3checkResultTff7b72.Td2a8ffstdoutTff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)Tffd700}Ta5d6ff"Tb4b4b4)


Tff7b72def Td2a8ffgenerateImageConvertingCommandTb4b4b4(Te6edf3forSipsTb4b4b4, Te6edf3originalPictureTb4b4b4, Te6edf3ipTb4b4b4, Te6edf3iconsetDirTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Te6edf3forSipsTb4b4b4:
Tff7b72return Tb4b4b4[
Te6edf3magickProgramTb4b4b4,
Ta5d6ff"Ta5d6ffconvertTa5d6ff"Tb4b4b4,
Te6edf3originalPictureTb4b4b4,
Ta5d6ff"Ta5d6ff-resizeTa5d6ff"Tb4b4b4,
Tffa657strTb4b4b4(Te6edf3ipTff7b72.Td2a8ffwidth Tff7b72* Te6edf3ipTff7b72.Td2a8ffscaleTb4b4b4)Tb4b4b4,
Te6edf3iconsetDir Tff7b72/ Te6edf3ipTff7b72.Td2a8ffgetIconNameTb4b4b4(Tb4b4b4)
Tb4b4b4]
Tff7b72elseTb4b4b4:
Tff7b72return Tb4b4b4[
Te6edf3sipsProgramTb4b4b4,
Ta5d6ff"Ta5d6ff-zTa5d6ff"Tb4b4b4,
Tffa657strTb4b4b4(Te6edf3ipTff7b72.Td2a8ffwidth Tff7b72* Te6edf3ipTff7b72.Td2a8ffscaleTb4b4b4)Tb4b4b4,
Tffa657strTb4b4b4(Te6edf3ipTff7b72.Td2a8ffwidth Tff7b72* Te6edf3ipTff7b72.Td2a8ffscaleTb4b4b4)Tb4b4b4,
Te6edf3originalPictureTb4b4b4,
Ta5d6ff"Ta5d6ff--outTa5d6ff"Tb4b4b4,
Te6edf3iconsetDir Tff7b72/ Te6edf3ipTff7b72.Td2a8ffgetIconNameTb4b4b4(Tb4b4b4)
Tb4b4b4]


Tff7b72def Td2a8ffmainTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72global Te6edf3ext

Te6edf3argParser Tff7b72= Te6edf3argparseTff7b72.Td2a8ffArgumentParserTb4b4b4(
Te6edf3progTff7b72=Ta5d6ff"Ta5d6ffgenerate-iconsetTa5d6ff"Tb4b4b4,
Te6edf3descriptionTff7b72=Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Tb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ff%(prog)sTffea00\nTffd700{Te6edf3__copyright__Tffd700}Tffea00\nTa5d6ffGenerateTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffan iconset for a Mac OS applicationTa5d6ff"Tb4b4b4,
Ta5d6fffTa5d6ff"Ta5d6ffusing Tffd700{Te6edf3iconutilProgramTffd700}Ta5d6ff toolTa5d6ff"
Tb4b4b4)Tb4b4b4)Tb4b4b4,
Te6edf3formatter_classTff7b72=Te6edf3argparseTff7b72.Td2a8ffRawDescriptionHelpFormatterTb4b4b4,
Te6edf3allow_abbrevTff7b72=Tff7b72False
Tb4b4b4)
Te6edf3argParserTff7b72.Td2a8ffadd_argumentTb4b4b4(
Ta5d6ff"Ta5d6ff--versionTa5d6ff"Tb4b4b4,
Te6edf3actionTff7b72=Ta5d6ff"Ta5d6ffversionTa5d6ff"Tb4b4b4,
Te6edf3versionTff7b72=Ta5d6fffTa5d6ff"Ta5d6ff%(prog)s Tffd700{Te6edf3__version__Tffd700}Ta5d6ff"
Tb4b4b4)
Te6edf3argParserTff7b72.Td2a8ffadd_argumentTb4b4b4(
Ta5d6ff"Ta5d6ffimageTa5d6ff"Tb4b4b4,
Te6edf3metavarTff7b72=Ta5d6ff"Ta5d6ff/path/image.pngTa5d6ff"Tb4b4b4,
Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ffpath to the original imageTa5d6ff"
Tb4b4b4)
Te6edf3argParserTff7b72.Td2a8ffadd_argumentTb4b4b4(
Ta5d6ff"Ta5d6ff--outTa5d6ff"Tb4b4b4,
Te6edf3metavarTff7b72=Ta5d6ff"Ta5d6ff/path/out/Ta5d6ff"Tb4b4b4,
Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Tb4b4b4(
Ta5d6ff"Ta5d6ffpath to the output folder, where to put resultingTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ff.icns file (default: same folder as original image)Ta5d6ff"
Tb4b4b4)Tb4b4b4)
Tb4b4b4)
Te6edf3argParserTff7b72.Td2a8ffadd_argumentTb4b4b4(
Ta5d6ff"Ta5d6ff--use-sipsTa5d6ff"Tb4b4b4,
Te6edf3actionTff7b72=Ta5d6ff'Ta5d6ffstore_trueTa5d6ff'Tb4b4b4,
Te6edf3helpTff7b72=Ta5d6fffTa5d6ff"Ta5d6ffuse Tffd700{Te6edf3sipsProgramTffd700}Ta5d6ff instead of ImageMagick (default: %(default)s)Ta5d6ff"
Tb4b4b4)
Te6edf3argParserTff7b72.Td2a8ffadd_argumentTb4b4b4(
Ta5d6ff"Ta5d6ff--force-pngTa5d6ff"Tb4b4b4,
Te6edf3actionTff7b72=Ta5d6ff'Ta5d6ffstore_trueTa5d6ff'Tb4b4b4,
Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Tb4b4b4(
Ta5d6ff"Ta5d6ffforce non-.png original image to be convertedTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffto .png (default: Tffd700%(default)sTa5d6ff)Ta5d6ff"
Tb4b4b4)Tb4b4b4)
Tb4b4b4)
Te6edf3argParserTff7b72.Td2a8ffadd_argumentTb4b4b4(
Ta5d6ff"Ta5d6ff--ignore-non-macTa5d6ff"Tb4b4b4,
Te6edf3actionTff7b72=Ta5d6ff'Ta5d6ffstore_trueTa5d6ff'Tb4b4b4,
Te6edf3helpTff7b72=Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Tb4b4b4(
Ta5d6ff"Ta5d6ffallows to run the script on any OS, not only on Mac OSTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ff(default: Tffd700%(default)sTa5d6ff)Ta5d6ff"
Tb4b4b4)Tb4b4b4)
Tb4b4b4)
T8b949e# argParser.add_argument(
T8b949e# "--delete-tmp-iconset",
T8b949e# action='store_true',
T8b949e# help=" ".join((
T8b949e# "delete temporary iconset directory,",
T8b949e# "if it already exists (default: %(default)s)"
T8b949e# ))
T8b949e# )
Te6edf3cliArgs Tff7b72= Te6edf3argParserTff7b72.Td2a8ffparse_argsTb4b4b4(Tb4b4b4)
T8b949e# print(cliArgs)

Tff7b72if Te6edf3platformTff7b72.Td2a8ffsystemTb4b4b4(Tb4b4b4) Tff7b72!= Ta5d6ff"Ta5d6ffDarwinTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72not Te6edf3cliArgsTff7b72.Td2a8ffignore_non_macTb4b4b4:
Tff7b72raise Tf85149SystemExitTb4b4b4(
Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Tb4b4b4(
Ta5d6ff"Ta5d6ff[ERROR] The script is meant to be executedTa5d6ff"Tb4b4b4,
Ta5d6fffTa5d6ff"Ta5d6ffon Mac OS only, as Tffd700{Te6edf3iconutilProgramTffd700}Ta5d6ff tool is only availableTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffthere. You can ignore this conditionTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffwith --ignore-non-macTa5d6ff"
Tb4b4b4)Tb4b4b4)
Tb4b4b4)
Tff7b72elseTb4b4b4:
Tffa657printTb4b4b4(
Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Tb4b4b4(
Ta5d6ff"Ta5d6ff[WARNING] You are running the script not on Mac OS,Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffso it is likely to fail,Ta5d6ff"Tb4b4b4,
Ta5d6fffTa5d6ff"Ta5d6ffunless you have Tffd700{Te6edf3iconutilProgramTffd700}Ta5d6ff tool installedTa5d6ff"
Tb4b4b4)Tb4b4b4)
Tb4b4b4)

Te6edf3checkProgramInPathTb4b4b4(Te6edf3iconutilProgramTb4b4b4)

Tff7b72if Tff7b72not Te6edf3cliArgsTff7b72.Td2a8ffuse_sipsTb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffWill use ImageMagick for converting the original imageTa5d6ff"Tb4b4b4)
Te6edf3checkProgramInPathTb4b4b4(
Te6edf3magickProgramTb4b4b4,
Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Tb4b4b4(
Ta5d6ff"Ta5d6ffPerhaps, you donTa5d6ff'Ta5d6fft have it installed?Ta5d6ff"Tb4b4b4,
Ta5d6fffTa5d6ff"Ta5d6ffYou can also use Tffd700{Te6edf3sipsProgramTffd700}Ta5d6ff tool insteadTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffwith --use-sipsTa5d6ff"
Tb4b4b4)Tb4b4b4)
Tb4b4b4)
Tff7b72elseTb4b4b4:
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffWill use Tffd700{Te6edf3sipsProgramTffd700}Ta5d6ff for converting the original imageTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(
Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Tb4b4b4(
Ta5d6ff"Ta5d6ff[WARNING] ImageMagick provides better quality results,Ta5d6ff"Tb4b4b4,
Ta5d6fffTa5d6ff"Ta5d6ffso do consider using it instead of Tffd700{Te6edf3sipsProgramTffd700}Ta5d6ff. More details:Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffhttps://decovar.dev/blog/2019/12/12/imagemagick-vs-sips-resize/Ta5d6ff"
Tb4b4b4)Tb4b4b4)
Tb4b4b4)
Te6edf3checkProgramInPathTb4b4b4(Te6edf3sipsProgramTb4b4b4)

Tffa657printTb4b4b4(Tb4b4b4)

Te6edf3originalPicture Tff7b72= Te6edf3pathlibTff7b72.Td2a8ffPathTb4b4b4(Te6edf3cliArgsTff7b72.Td2a8ffimageTb4b4b4)
Tff7b72if Tff7b72not Tb4b4b4(Te6edf3originalPictureTff7b72.Td2a8ffis_fileTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4:
Tff7b72raise Tf85149SystemExitTb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ff[ERROR] There is no such image file: Tffd700{Te6edf3cliArgsTff7b72.Td2a8ffimageTffd700}Ta5d6ff"
Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffOriginal image: Tffd700{Te6edf3originalPictureTffd700}Ta5d6ff"Tb4b4b4)

Te6edf3fname Tff7b72= Te6edf3pathlibTff7b72.Td2a8ffPathTb4b4b4(Te6edf3originalPictureTb4b4b4)Tff7b72.Td2a8ffstem
Te6edf3ext Tff7b72= Te6edf3pathlibTff7b72.Td2a8ffPathTb4b4b4(Te6edf3originalPictureTb4b4b4)Tff7b72.Td2a8ffsuffix
Tff7b72if Te6edf3ext Tff7b72!= Ta5d6ff"Ta5d6ff.pngTa5d6ff"Tb4b4b4:
Tff7b72if Tff7b72not Te6edf3cliArgsTff7b72.Td2a8ffforce_pngTb4b4b4:
Tffa657printTb4b4b4(
Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Tb4b4b4(
Ta5d6ff"Ta5d6ff[WARNING] Original image extension is not .png,Ta5d6ff"Tb4b4b4,
Ta5d6fffTa5d6ff"Tffd700{Te6edf3iconutilProgramTffd700}Ta5d6ff is likely to fail,Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffpass --force-png to avoid thatTa5d6ff"
Tb4b4b4)Tb4b4b4)
Tb4b4b4)
Tff7b72elseTb4b4b4:
Te6edf3ext Tff7b72= Ta5d6ff"Ta5d6ff.pngTa5d6ff"

T8b949e# destination path for output
Te6edf3destDir Tff7b72= Tb4b4b4(
Te6edf3pathlibTff7b72.Td2a8ffPathTb4b4b4(Te6edf3originalPictureTb4b4b4)Tff7b72.Td2a8ffparent
Tff7b72if Te6edf3cliArgsTff7b72.Td2a8ffout Tff7b72is Tff7b72None
Tff7b72else Te6edf3pathlibTff7b72.Td2a8ffPathTb4b4b4(Te6edf3cliArgsTff7b72.Td2a8ffoutTb4b4b4)
Tb4b4b4)
Tff7b72if Tff7b72not Tb4b4b4(Te6edf3destDirTff7b72.Td2a8ffis_dirTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3destDirTff7b72.Td2a8ffmkdirTb4b4b4(Te6edf3parentsTff7b72=Tff7b72TrueTb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3exTb4b4b4:
Tff7b72raise Tf85149SystemExitTb4b4b4(
Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Tb4b4b4(
Ta5d6ff"Ta5d6ff[ERROR] The specified output folder doesnTa5d6ff'Ta5d6fft existTa5d6ff"Tb4b4b4,
Ta5d6fffTa5d6ff"Ta5d6ffand could not be created: Tffd700{Te6edf3cliArgsTff7b72.Td2a8ffoutTffd700}Ta5d6ff"
Tb4b4b4)Tb4b4b4)
Tb4b4b4)
T8b949e# path to resulting .icns file
Te6edf3resultingIconset Tff7b72= Te6edf3destDir Tff7b72/ Ta5d6fffTa5d6ff"Tffd700{Te6edf3fnameTffd700}Ta5d6ff.icnsTa5d6ff"

T8b949e# path to temporary iconset folder
Te6edf3iconsetDir Tff7b72= Te6edf3pathlibTff7b72.Td2a8ffPathTb4b4b4(Te6edf3destDir Tff7b72/ Ta5d6fffTa5d6ff"Tffd700{Te6edf3fnameTffd700}Ta5d6ff.iconsetTa5d6ff"Tb4b4b4)
Tff7b72if Tff7b72not Tb4b4b4(Te6edf3iconsetDirTff7b72.Td2a8ffis_dirTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4:
Tff7b72tryTb4b4b4:
Te6edf3iconsetDirTff7b72.Td2a8ffmkdirTb4b4b4(Tb4b4b4)
Tff7b72except Tf85149Exception Tff7b72as Te6edf3exTb4b4b4:
Tff7b72raise Tf85149SystemExitTb4b4b4(
Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Tb4b4b4(
Ta5d6ff"Ta5d6ff[ERROR] Could not create temporaryTa5d6ff"Tb4b4b4,
Ta5d6fffTa5d6ff"Ta5d6fficonset folder: Tffd700{Te6edf3iconsetDirTffd700}Ta5d6ff"
Tb4b4b4)Tb4b4b4)
Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72if Tff7b72FalseTb4b4b4: T8b949e# cliArgs.delete_tmp_iconset:
T8b949e# not the best idea to let script delete files on disk
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ff[DEBUG] Deleting temporary iconset folderTa5d6ff"Tb4b4b4)
Tff7b72elseTb4b4b4:
Tff7b72raise Tf85149SystemExitTb4b4b4(
Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Tb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ff[ERROR] Temporary iconset directory (Tffd700{Te6edf3iconsetDirTffd700}Ta5d6ff)Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffalready exists, you need toTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffdelete it firstTa5d6ff"
T8b949e# "either delete it manually",
T8b949e# "or use --delete-tmp-iconset"
Tb4b4b4)Tb4b4b4)
Tb4b4b4)

T8b949e# https://developer.apple.com/design/human-interface-guidelines/macos/icons-and-images/app-icon#app-icon-sizes
Te6edf3ListOfIconParameters Tff7b72= Tb4b4b4[
Te6edf3IconParametersTb4b4b4(T79c0ff16Tb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4,
Te6edf3IconParametersTb4b4b4(T79c0ff16Tb4b4b4, T79c0ff2Tb4b4b4)Tb4b4b4,
Te6edf3IconParametersTb4b4b4(T79c0ff32Tb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4,
Te6edf3IconParametersTb4b4b4(T79c0ff32Tb4b4b4, T79c0ff2Tb4b4b4)Tb4b4b4,
Te6edf3IconParametersTb4b4b4(T79c0ff128Tb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4,
Te6edf3IconParametersTb4b4b4(T79c0ff128Tb4b4b4, T79c0ff2Tb4b4b4)Tb4b4b4,
Te6edf3IconParametersTb4b4b4(T79c0ff256Tb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4,
Te6edf3IconParametersTb4b4b4(T79c0ff256Tb4b4b4, T79c0ff2Tb4b4b4)Tb4b4b4,
Te6edf3IconParametersTb4b4b4(T79c0ff512Tb4b4b4, T79c0ff1Tb4b4b4)Tb4b4b4,
Te6edf3IconParametersTb4b4b4(T79c0ff512Tb4b4b4, T79c0ff2Tb4b4b4)
Tb4b4b4]

Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffConverting images for iconsetTa5d6ff"Tb4b4b4)

T8b949e# generate iconset
Te6edf3currentImage Tff7b72= T79c0ff0
Tff7b72for Te6edf3ip Tff7b72in Te6edf3ListOfIconParametersTb4b4b4:
Te6edf3currentImage Tff7b72+Tff7b72= T79c0ff1
Te6edf3convertingResult Tff7b72= Te6edf3subprocessTff7b72.Td2a8ffrunTb4b4b4(
Te6edf3generateImageConvertingCommandTb4b4b4(
Te6edf3cliArgsTff7b72.Td2a8ffuse_sipsTb4b4b4,
Te6edf3originalPictureTb4b4b4,
Te6edf3ipTb4b4b4,
Te6edf3iconsetDir
Tb4b4b4)Tb4b4b4,
Te6edf3capture_outputTff7b72=Tff7b72TrueTb4b4b4,
Te6edf3textTff7b72=Tff7b72True
Tb4b4b4)
Tff7b72if Te6edf3convertingResultTff7b72.Td2a8ffreturncode Tff7b72!= T79c0ff0Tb4b4b4:
Tff7b72raise Tf85149SystemExitTb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ff[ERROR] Conversion failed. Tffd700{Te6edf3convertingResultTff7b72.Td2a8ffstderrTff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)Tffd700}Ta5d6ff"
Tb4b4b4)
Tff7b72elseTb4b4b4:
Tffa657printTb4b4b4(Ta5d6fffTa5d6ff"Tffd700{Te6edf3currentImageTffd700}Ta5d6ff/Tffd700{Tffa657lenTb4b4b4(Te6edf3ListOfIconParametersTb4b4b4)Tffd700}Ta5d6ff...Ta5d6ff"Tb4b4b4)
T8b949e# print(f"Generated {ip.getIconName()}")

Tffa657printTb4b4b4(Ta5d6ff"Tffea00\nTa5d6ffGenerating .icns file...Ta5d6ff"Tb4b4b4)
T8b949e# convert iconset folder to .icns file
Te6edf3iconutilResult Tff7b72= Te6edf3subprocessTff7b72.Td2a8ffrunTb4b4b4(
Tb4b4b4[
Te6edf3iconutilProgramTb4b4b4,
Ta5d6ff"Ta5d6ff-cTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fficnsTa5d6ff"Tb4b4b4,
Te6edf3iconsetDirTb4b4b4,
Ta5d6ff"Ta5d6ff-oTa5d6ff"Tb4b4b4,
Te6edf3resultingIconset
Tb4b4b4]Tb4b4b4,
Te6edf3capture_outputTff7b72=Tff7b72TrueTb4b4b4,
Te6edf3textTff7b72=Tff7b72True
Tb4b4b4)
Tff7b72if Te6edf3iconutilResultTff7b72.Td2a8ffreturncode Tff7b72!= T79c0ff0Tb4b4b4:
Tff7b72raise Tf85149SystemExitTb4b4b4(
Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Tb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ff[ERROR] Tffd700{Te6edf3iconutilProgramTffd700}Ta5d6ff could not generateTa5d6ff"Tb4b4b4,
Ta5d6fffTa5d6ff"Ta5d6ffan iconset. Tffd700{Te6edf3iconutilResultTff7b72.Td2a8ffstderrTff7b72.Td2a8ffstripTb4b4b4(Tb4b4b4)Tffd700}Ta5d6ff"
Tb4b4b4)Tb4b4b4)
Tb4b4b4)
Tff7b72elseTb4b4b4:
Tffa657printTb4b4b4(
Ta5d6ff"Ta5d6ff Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Tb4b4b4(
Ta5d6ff"Ta5d6ff[SUCCESS] An iconset was successfullyTa5d6ff"Tb4b4b4,
Ta5d6fffTa5d6ff"Ta5d6ffgenerated to Tffd700{Te6edf3resultingIconsetTffd700}Ta5d6ff"
Tb4b4b4)Tb4b4b4)
Tb4b4b4)
Tff7b72raise Tf85149SystemExitTb4b4b4(T79c0ff0Tb4b4b4)


Tff7b72if Tff7b72__name__ Tff7b72== Ta5d6ff'Ta5d6ff__main__Ta5d6ff'Tb4b4b4:
Te6edf3mainTb4b4b4(Tb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────